The present invention relates to a device and a process for dynamically controlling the allocation of resources in a data processing system.
The invention relates to of data processing operations in an industrial environment and particularly to data processing systems of the xe2x80x9copenxe2x80x9d type running on xe2x80x9cUNIXxe2x80x9d type software. The servers that run on this type of software are called xe2x80x9copenxe2x80x9d servers and at present are highly valued.
The drawback of these servers is that they were developed for academic applications whose purposes were not the same as those for industrial purposes. Thus, in a xe2x80x9cUNIXxe2x80x9d operating system, the jobs, or more precisely each of the processes comprising the jobs are assigned an initial priority, either by the system or by the user who enters these jobs. In order for a job to be given a higher priority by the system, the user must explicitly assign it an initial priority, or manually modify its priority using an administrative command. Thus, there is no control over or inter-correlation between the priority levels assigned to one job or another.
Likewise, there is no automatic correlation between the state of a system in terms of work load and the management of job priorities. Thus, when there is no control, all the processes have the same rights and the law of numbers prevails. If M1, M2 and M3 are three groups of non-critical processes that are more numerous and more active than the system processes S1, S2 and S3 and the critical xe2x80x9cbatchxe2x80x9d processes (BATCH) B1, B2 and B3, they will use up most of the resources. In a standard xe2x80x9cUNIXxe2x80x9d system, the processes can start up without any limitation, even on heavily loaded systems, without any attention to the number of resources currently being used by the processes executed and without any attention to the number of resources the new process will require. This results in the following undesirable behavior: a group of processes is executed, the critical processes as well as the non-critical processes, and the critical processes, which must be completed within a time desired by the user, have too few resources available to be completed within the desired time. At the same time, non-critical processes are using too many resources.
Thus, the first object of the invention is to propose a process for dynamically controlling processes and jobs, a job being a serial or parallel chain of processes, which makes it possible to eliminate these drawbacks.
This object is achieved due to the fact that the process for dynamically controlling processes in an open data processing system of the xe2x80x9cUNIXxe2x80x9d type is comprised of:
sorting the jobs by dimension;
having the user assign a relative weight to each of the dimensions;
adjusting the execution priorities of the jobs of each dimension as a function of the relative weights of the dimensions when the system is heavily loaded.
According to another characteristic, when the system is using the hardware resources in excess of an important threshold, the process will dynamically modify the priority associated with the jobs in progress as a function of the dimensions to which they belong.
According to another characteristic, when the hardware occupancy rate of the system falls below a certain threshold, the process re-establishes the initial job priorities.
Another object of the invention is to propose a device for dynamically controlling jobs.
In accordance with this object, the device for dynamically controlling jobs executed in a xe2x80x9cUNIXxe2x80x9d operating system is characterized in that it comprises:
means for sorting the jobs by dimension;
means for assigning a relative weight to each of the dimensions;
means for adjusting the execution priorities of the jobs of each dimension as a function of the relative weights of the dimensions when the system is heavily loaded.
According to another characteristic, the device comprises means for consulting the state of the system at regular time intervals, means for associating dimensions with the users"" jobs, and means for giving a greater or lesser weight to each of these dimensions.
According to another characteristic, the system comprises means for dynamically modifying the priority associated with the jobs in progress as a function of the dimensions to which they belong.
According to another characteristic, the device comprises means for determining that the load on the system has fallen below a certain threshold and for re-establishing the initial job priorities.